package com.rpframework.utils

import java.math.BigDecimal
import java.math.RoundingMode


/**
 * 数字相关工具类
 * Created by lx178 on 2016/12/16.
 */
object DecimalUtil {
    /**
     * [d]保留[size]小数，四舍五入
     */
    fun toFixedBig(d: Double, size: Int = 2): BigDecimal {
        // 新方法，如果不需要四舍五入，可以使用RoundingMode.DOWN
        return BigDecimal(d).setScale(size, RoundingMode.UP)
    }

    /**
     * [d]保留[size]小数，四舍五入
     */
    fun toFixed(d: Double, size: Int = 2): Double {
        return toFixedBig(d, size).toDouble()
    }

    /**
     * [d]保留[size]小数，四舍五入
     */
    fun toFixed(d: Float, size: Int = 2): Float {
        return toFixedBig(d.toDouble(), size).toFloat()
    }
}

fun Float.toFixedStr(size: Int = 2): String {
    return DecimalUtil.toFixedBig(this.toDouble(), size).toString()
}

fun Float.toFixed(size: Int = 2): Float {
    return DecimalUtil.toFixed(this, size)
}